<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>points_to_pluecker_line [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_tools.html">工具</a> / <a href="toc_tools_geometry.html">几何</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">points_to_pluecker_line</span><span data-if="c" style="display:none;">points_to_pluecker_line</span><span data-if="cpp" style="display:none;">PointsToPlueckerLine</span><span data-if="dotnet" style="display:none;">PointsToPlueckerLine</span><span data-if="python" style="display:none;">points_to_pluecker_line</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">points_to_pluecker_line</span><span data-if="c" style="display:none;">points_to_pluecker_line</span><span data-if="cpp" style="display:none;">PointsToPlueckerLine</span><span data-if="dotnet" style="display:none;">PointsToPlueckerLine</span><span data-if="python" style="display:none;">points_to_pluecker_line</span></code> — Convert a 3D line given by two points to Plücker coordinates.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>points_to_pluecker_line</b>( :  : <a href="#Point1X"><i>Point1X</i></a>, <a href="#Point1Y"><i>Point1Y</i></a>, <a href="#Point1Z"><i>Point1Z</i></a>, <a href="#Point2X"><i>Point2X</i></a>, <a href="#Point2Y"><i>Point2Y</i></a>, <a href="#Point2Z"><i>Point2Z</i></a> : <a href="#LineDirectionX"><i>LineDirectionX</i></a>, <a href="#LineDirectionY"><i>LineDirectionY</i></a>, <a href="#LineDirectionZ"><i>LineDirectionZ</i></a>, <a href="#LineMomentX"><i>LineMomentX</i></a>, <a href="#LineMomentY"><i>LineMomentY</i></a>, <a href="#LineMomentZ"><i>LineMomentZ</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>points_to_pluecker_line</b>(double <a href="#Point1X"><i>Point1X</i></a>, double <a href="#Point1Y"><i>Point1Y</i></a>, double <a href="#Point1Z"><i>Point1Z</i></a>, double <a href="#Point2X"><i>Point2X</i></a>, double <a href="#Point2Y"><i>Point2Y</i></a>, double <a href="#Point2Z"><i>Point2Z</i></a>, double* <a href="#LineDirectionX"><i>LineDirectionX</i></a>, double* <a href="#LineDirectionY"><i>LineDirectionY</i></a>, double* <a href="#LineDirectionZ"><i>LineDirectionZ</i></a>, double* <a href="#LineMomentX"><i>LineMomentX</i></a>, double* <a href="#LineMomentY"><i>LineMomentY</i></a>, double* <a href="#LineMomentZ"><i>LineMomentZ</i></a>)</code></p>
<p>
<code>Herror <b>T_points_to_pluecker_line</b>(const Htuple <a href="#Point1X"><i>Point1X</i></a>, const Htuple <a href="#Point1Y"><i>Point1Y</i></a>, const Htuple <a href="#Point1Z"><i>Point1Z</i></a>, const Htuple <a href="#Point2X"><i>Point2X</i></a>, const Htuple <a href="#Point2Y"><i>Point2Y</i></a>, const Htuple <a href="#Point2Z"><i>Point2Z</i></a>, Htuple* <a href="#LineDirectionX"><i>LineDirectionX</i></a>, Htuple* <a href="#LineDirectionY"><i>LineDirectionY</i></a>, Htuple* <a href="#LineDirectionZ"><i>LineDirectionZ</i></a>, Htuple* <a href="#LineMomentX"><i>LineMomentX</i></a>, Htuple* <a href="#LineMomentY"><i>LineMomentY</i></a>, Htuple* <a href="#LineMomentZ"><i>LineMomentZ</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>PointsToPlueckerLine</b>(const HTuple&amp; <a href="#Point1X"><i>Point1X</i></a>, const HTuple&amp; <a href="#Point1Y"><i>Point1Y</i></a>, const HTuple&amp; <a href="#Point1Z"><i>Point1Z</i></a>, const HTuple&amp; <a href="#Point2X"><i>Point2X</i></a>, const HTuple&amp; <a href="#Point2Y"><i>Point2Y</i></a>, const HTuple&amp; <a href="#Point2Z"><i>Point2Z</i></a>, HTuple* <a href="#LineDirectionX"><i>LineDirectionX</i></a>, HTuple* <a href="#LineDirectionY"><i>LineDirectionY</i></a>, HTuple* <a href="#LineDirectionZ"><i>LineDirectionZ</i></a>, HTuple* <a href="#LineMomentX"><i>LineMomentX</i></a>, HTuple* <a href="#LineMomentY"><i>LineMomentY</i></a>, HTuple* <a href="#LineMomentZ"><i>LineMomentZ</i></a>)</code></p>
<p>
<code>static void <a href="HMisc.html">HMisc</a>::<b>PointsToPlueckerLine</b>(const HTuple&amp; <a href="#Point1X"><i>Point1X</i></a>, const HTuple&amp; <a href="#Point1Y"><i>Point1Y</i></a>, const HTuple&amp; <a href="#Point1Z"><i>Point1Z</i></a>, const HTuple&amp; <a href="#Point2X"><i>Point2X</i></a>, const HTuple&amp; <a href="#Point2Y"><i>Point2Y</i></a>, const HTuple&amp; <a href="#Point2Z"><i>Point2Z</i></a>, HTuple* <a href="#LineDirectionX"><i>LineDirectionX</i></a>, HTuple* <a href="#LineDirectionY"><i>LineDirectionY</i></a>, HTuple* <a href="#LineDirectionZ"><i>LineDirectionZ</i></a>, HTuple* <a href="#LineMomentX"><i>LineMomentX</i></a>, HTuple* <a href="#LineMomentY"><i>LineMomentY</i></a>, HTuple* <a href="#LineMomentZ"><i>LineMomentZ</i></a>)</code></p>
<p>
<code>static void <a href="HMisc.html">HMisc</a>::<b>PointsToPlueckerLine</b>(double <a href="#Point1X"><i>Point1X</i></a>, double <a href="#Point1Y"><i>Point1Y</i></a>, double <a href="#Point1Z"><i>Point1Z</i></a>, double <a href="#Point2X"><i>Point2X</i></a>, double <a href="#Point2Y"><i>Point2Y</i></a>, double <a href="#Point2Z"><i>Point2Z</i></a>, double* <a href="#LineDirectionX"><i>LineDirectionX</i></a>, double* <a href="#LineDirectionY"><i>LineDirectionY</i></a>, double* <a href="#LineDirectionZ"><i>LineDirectionZ</i></a>, double* <a href="#LineMomentX"><i>LineMomentX</i></a>, double* <a href="#LineMomentY"><i>LineMomentY</i></a>, double* <a href="#LineMomentZ"><i>LineMomentZ</i></a>)</code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>PointsToPlueckerLine</b>(<a href="HTuple.html">HTuple</a> <a href="#Point1X"><i>point1X</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Point1Y"><i>point1Y</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Point1Z"><i>point1Z</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Point2X"><i>point2X</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Point2Y"><i>point2Y</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Point2Z"><i>point2Z</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineDirectionX"><i>lineDirectionX</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineDirectionY"><i>lineDirectionY</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineDirectionZ"><i>lineDirectionZ</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineMomentX"><i>lineMomentX</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineMomentY"><i>lineMomentY</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineMomentZ"><i>lineMomentZ</i></a>)</code></p>
<p>
<code>static void <a href="HMisc.html">HMisc</a>.<b>PointsToPlueckerLine</b>(<a href="HTuple.html">HTuple</a> <a href="#Point1X"><i>point1X</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Point1Y"><i>point1Y</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Point1Z"><i>point1Z</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Point2X"><i>point2X</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Point2Y"><i>point2Y</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Point2Z"><i>point2Z</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineDirectionX"><i>lineDirectionX</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineDirectionY"><i>lineDirectionY</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineDirectionZ"><i>lineDirectionZ</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineMomentX"><i>lineMomentX</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineMomentY"><i>lineMomentY</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#LineMomentZ"><i>lineMomentZ</i></a>)</code></p>
<p>
<code>static void <a href="HMisc.html">HMisc</a>.<b>PointsToPlueckerLine</b>(double <a href="#Point1X"><i>point1X</i></a>, double <a href="#Point1Y"><i>point1Y</i></a>, double <a href="#Point1Z"><i>point1Z</i></a>, double <a href="#Point2X"><i>point2X</i></a>, double <a href="#Point2Y"><i>point2Y</i></a>, double <a href="#Point2Z"><i>point2Z</i></a>, out double <a href="#LineDirectionX"><i>lineDirectionX</i></a>, out double <a href="#LineDirectionY"><i>lineDirectionY</i></a>, out double <a href="#LineDirectionZ"><i>lineDirectionZ</i></a>, out double <a href="#LineMomentX"><i>lineMomentX</i></a>, out double <a href="#LineMomentY"><i>lineMomentY</i></a>, out double <a href="#LineMomentZ"><i>lineMomentZ</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>points_to_pluecker_line</b>(<a href="#Point1X"><i>point_1x</i></a>: MaybeSequence[float], <a href="#Point1Y"><i>point_1y</i></a>: MaybeSequence[float], <a href="#Point1Z"><i>point_1z</i></a>: MaybeSequence[float], <a href="#Point2X"><i>point_2x</i></a>: MaybeSequence[float], <a href="#Point2Y"><i>point_2y</i></a>: MaybeSequence[float], <a href="#Point2Z"><i>point_2z</i></a>: MaybeSequence[float]) -&gt; Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float]]</code></p>
<p>
<code>def <b>points_to_pluecker_line_s</b>(<a href="#Point1X"><i>point_1x</i></a>: MaybeSequence[float], <a href="#Point1Y"><i>point_1y</i></a>: MaybeSequence[float], <a href="#Point1Z"><i>point_1z</i></a>: MaybeSequence[float], <a href="#Point2X"><i>point_2x</i></a>: MaybeSequence[float], <a href="#Point2Y"><i>point_2y</i></a>: MaybeSequence[float], <a href="#Point2Z"><i>point_2z</i></a>: MaybeSequence[float]) -&gt; Tuple[float, float, float, float, float, float]</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">points_to_pluecker_line</span><span data-if="c" style="display:none">points_to_pluecker_line</span><span data-if="cpp" style="display:none">PointsToPlueckerLine</span><span data-if="com" style="display:none">PointsToPlueckerLine</span><span data-if="dotnet" style="display:none">PointsToPlueckerLine</span><span data-if="python" style="display:none">points_to_pluecker_line</span></code> converts the 3D line given by the
two points (<a href="#Point1X"><i><code><span data-if="hdevelop" style="display:inline">Point1X</span><span data-if="c" style="display:none">Point1X</span><span data-if="cpp" style="display:none">Point1X</span><span data-if="com" style="display:none">Point1X</span><span data-if="dotnet" style="display:none">point1X</span><span data-if="python" style="display:none">point_1x</span></code></i></a>, <a href="#Point1Y"><i><code><span data-if="hdevelop" style="display:inline">Point1Y</span><span data-if="c" style="display:none">Point1Y</span><span data-if="cpp" style="display:none">Point1Y</span><span data-if="com" style="display:none">Point1Y</span><span data-if="dotnet" style="display:none">point1Y</span><span data-if="python" style="display:none">point_1y</span></code></i></a>, <a href="#Point1Z"><i><code><span data-if="hdevelop" style="display:inline">Point1Z</span><span data-if="c" style="display:none">Point1Z</span><span data-if="cpp" style="display:none">Point1Z</span><span data-if="com" style="display:none">Point1Z</span><span data-if="dotnet" style="display:none">point1Z</span><span data-if="python" style="display:none">point_1z</span></code></i></a>)
and (<a href="#Point2X"><i><code><span data-if="hdevelop" style="display:inline">Point2X</span><span data-if="c" style="display:none">Point2X</span><span data-if="cpp" style="display:none">Point2X</span><span data-if="com" style="display:none">Point2X</span><span data-if="dotnet" style="display:none">point2X</span><span data-if="python" style="display:none">point_2x</span></code></i></a>, <a href="#Point2Y"><i><code><span data-if="hdevelop" style="display:inline">Point2Y</span><span data-if="c" style="display:none">Point2Y</span><span data-if="cpp" style="display:none">Point2Y</span><span data-if="com" style="display:none">Point2Y</span><span data-if="dotnet" style="display:none">point2Y</span><span data-if="python" style="display:none">point_2y</span></code></i></a>, <a href="#Point2Z"><i><code><span data-if="hdevelop" style="display:inline">Point2Z</span><span data-if="c" style="display:none">Point2Z</span><span data-if="cpp" style="display:none">Point2Z</span><span data-if="com" style="display:none">Point2Z</span><span data-if="dotnet" style="display:none">point2Z</span><span data-if="python" style="display:none">point_2z</span></code></i></a>) to
Plücker coordinates <span title="1" style="vertical-align:-0.0917759em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1.86669em" height="0.808552em" viewBox="0 0 29.866974 12.936829">
<!-- Original BoundingBox: -14.933487 -6.468414 14.933487 6.468414 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_61">
      <path style="fill-rule: evenodd;" d="M687.000000 -327.000000C702.000000 -327.000000,721.000000 -327.000000,721.000000 -347.000000C721.000000 -367.000000,702.000000 -367.000000,688.000000 -367.000000L89.000000 -367.000000C75.000000 -367.000000,56.000000 -367.000000,56.000000 -347.000000C56.000000 -327.000000,75.000000 -327.000000,90.000000 -327.000000M688.000000 -133.000000C702.000000 -133.000000,721.000000 -133.000000,721.000000 -153.000000C721.000000 -173.000000,702.000000 -173.000000,687.000000 -173.000000L90.000000 -173.000000C75.000000 -173.000000,56.000000 -173.000000,56.000000 -153.000000C56.000000 -133.000000,75.000000 -133.000000,89.000000 -133.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_76">
      <path style="fill-rule: evenodd;" d="M643.000000 -274.000000L596.000000 -274.000000C588.000000 -205.000000,571.000000 -47.000000,392.000000 -47.000000L289.000000 -47.000000L289.000000 -639.000000L424.000000 -639.000000L424.000000 -686.000000L222.000000 -686.000000L380.000000 -683.000000L271.000000 -683.000000L222.000000 -683.000000L178.000000 -683.000000L77.000000 -683.000000L39.000000 -686.000000L39.000000 -639.000000L147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L612.000000 -0.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.082504 11.468414)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_76"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,15.535538 11.468414)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_61"></use>
  </g>
</svg></span>
(<a href="#LineDirectionX"><i><code><span data-if="hdevelop" style="display:inline">LineDirectionX</span><span data-if="c" style="display:none">LineDirectionX</span><span data-if="cpp" style="display:none">LineDirectionX</span><span data-if="com" style="display:none">LineDirectionX</span><span data-if="dotnet" style="display:none">lineDirectionX</span><span data-if="python" style="display:none">line_direction_x</span></code></i></a>, <a href="#LineDirectionY"><i><code><span data-if="hdevelop" style="display:inline">LineDirectionY</span><span data-if="c" style="display:none">LineDirectionY</span><span data-if="cpp" style="display:none">LineDirectionY</span><span data-if="com" style="display:none">LineDirectionY</span><span data-if="dotnet" style="display:none">lineDirectionY</span><span data-if="python" style="display:none">line_direction_y</span></code></i></a>, <a href="#LineDirectionZ"><i><code><span data-if="hdevelop" style="display:inline">LineDirectionZ</span><span data-if="c" style="display:none">LineDirectionZ</span><span data-if="cpp" style="display:none">LineDirectionZ</span><span data-if="com" style="display:none">LineDirectionZ</span><span data-if="dotnet" style="display:none">lineDirectionZ</span><span data-if="python" style="display:none">line_direction_z</span></code></i></a>)
and <span title="2" style="vertical-align:-0.0917759em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.2652em" height="0.808552em" viewBox="0 0 36.243179 12.936829">
<!-- Original BoundingBox: -18.121597 -6.468414 18.121582 6.468414 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_61">
      <path style="fill-rule: evenodd;" d="M687.000000 -327.000000C702.000000 -327.000000,721.000000 -327.000000,721.000000 -347.000000C721.000000 -367.000000,702.000000 -367.000000,688.000000 -367.000000L89.000000 -367.000000C75.000000 -367.000000,56.000000 -367.000000,56.000000 -347.000000C56.000000 -327.000000,75.000000 -327.000000,90.000000 -327.000000M688.000000 -133.000000C702.000000 -133.000000,721.000000 -133.000000,721.000000 -153.000000C721.000000 -173.000000,702.000000 -173.000000,687.000000 -173.000000L90.000000 -173.000000C75.000000 -173.000000,56.000000 -173.000000,56.000000 -153.000000C56.000000 -133.000000,75.000000 -133.000000,89.000000 -133.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_77">
      <path style="fill-rule: evenodd;" d="M546.000000 -132.000000L306.000000 -661.000000C295.000000 -686.000000,284.000000 -686.000000,262.000000 -686.000000L40.000000 -686.000000L40.000000 -639.000000L148.000000 -639.000000L148.000000 -76.000000C148.000000 -54.000000,147.000000 -53.000000,119.000000 -50.000000C95.000000 -47.000000,93.000000 -47.000000,65.000000 -47.000000L40.000000 -47.000000L40.000000 -0.000000L174.000000 -0.000000L78.000000 -3.000000L135.000000 -3.000000L174.000000 -3.000000L216.000000 -3.000000L268.000000 -3.000000L309.000000 -0.000000L309.000000 -47.000000L284.000000 -47.000000C266.000000 -47.000000,249.000000 -48.000000,231.000000 -50.000000C202.000000 -53.000000,201.000000 -54.000000,201.000000 -76.000000L201.000000 -626.000000L202.000000 -626.000000L474.000000 -25.000000C483.000000 -5.000000,495.000000 -0.000000,506.000000 -0.000000C526.000000 -0.000000,534.000000 -15.000000,538.000000 -24.000000L817.000000 -639.000000L818.000000 -639.000000L818.000000 -47.000000L710.000000 -47.000000L710.000000 -0.000000L880.000000 -0.000000L746.000000 -3.000000L839.000000 -3.000000L880.000000 -3.000000L921.000000 -3.000000L1015.000000 -3.000000L1051.000000 -0.000000L1051.000000 -47.000000L943.000000 -47.000000L943.000000 -639.000000L1051.000000 -639.000000L1051.000000 -686.000000L830.000000 -686.000000C808.000000 -686.000000,797.000000 -686.000000,786.000000 -661.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.894394 11.468414)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_77"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,22.723450 11.468414)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_61"></use>
  </g>
</svg></span>
(<a href="#LineMomentX"><i><code><span data-if="hdevelop" style="display:inline">LineMomentX</span><span data-if="c" style="display:none">LineMomentX</span><span data-if="cpp" style="display:none">LineMomentX</span><span data-if="com" style="display:none">LineMomentX</span><span data-if="dotnet" style="display:none">lineMomentX</span><span data-if="python" style="display:none">line_moment_x</span></code></i></a>, <a href="#LineMomentY"><i><code><span data-if="hdevelop" style="display:inline">LineMomentY</span><span data-if="c" style="display:none">LineMomentY</span><span data-if="cpp" style="display:none">LineMomentY</span><span data-if="com" style="display:none">LineMomentY</span><span data-if="dotnet" style="display:none">lineMomentY</span><span data-if="python" style="display:none">line_moment_y</span></code></i></a>, <a href="#LineMomentZ"><i><code><span data-if="hdevelop" style="display:inline">LineMomentZ</span><span data-if="c" style="display:none">LineMomentZ</span><span data-if="cpp" style="display:none">LineMomentZ</span><span data-if="com" style="display:none">LineMomentZ</span><span data-if="dotnet" style="display:none">lineMomentZ</span><span data-if="python" style="display:none">line_moment_z</span></code></i></a>).
For the definition of Plücker coordinates, see
<code>“Solution Guide III-C - 3D Vision”</code>.
All input tuples must be of same length.
</p>
<p>Let <span title="3" style="vertical-align:-0.0917759em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.909174em" height="0.808552em" viewBox="0 0 14.546783 12.936829">
<!-- Original BoundingBox: -7.273392 -6.468414 7.273392 6.468414 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_80">
      <path style="fill-rule: evenodd;" d="M289.000000 -302.000000L466.000000 -302.000000C605.000000 -302.000000,721.000000 -374.000000,721.000000 -491.000000C721.000000 -601.000000,622.000000 -686.000000,456.000000 -686.000000L39.000000 -686.000000L39.000000 -639.000000L147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L218.000000 -0.000000L77.000000 -3.000000L175.000000 -3.000000L218.000000 -3.000000L261.000000 -3.000000L359.000000 -3.000000L397.000000 -0.000000L397.000000 -47.000000L289.000000 -47.000000M417.000000 -343.000000L283.000000 -343.000000L283.000000 -639.000000L418.000000 -639.000000C568.000000 -639.000000,568.000000 -563.000000,568.000000 -491.000000C568.000000 -420.000000,568.000000 -343.000000,417.000000 -343.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.742599 11.468414)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_80"></use>
  </g>
</svg></span> denote the first point
(<a href="#Point1X"><i><code><span data-if="hdevelop" style="display:inline">Point1X</span><span data-if="c" style="display:none">Point1X</span><span data-if="cpp" style="display:none">Point1X</span><span data-if="com" style="display:none">Point1X</span><span data-if="dotnet" style="display:none">point1X</span><span data-if="python" style="display:none">point_1x</span></code></i></a>, <a href="#Point1Y"><i><code><span data-if="hdevelop" style="display:inline">Point1Y</span><span data-if="c" style="display:none">Point1Y</span><span data-if="cpp" style="display:none">Point1Y</span><span data-if="com" style="display:none">Point1Y</span><span data-if="dotnet" style="display:none">point1Y</span><span data-if="python" style="display:none">point_1y</span></code></i></a>, <a href="#Point1Z"><i><code><span data-if="hdevelop" style="display:inline">Point1Z</span><span data-if="c" style="display:none">Point1Z</span><span data-if="cpp" style="display:none">Point1Z</span><span data-if="com" style="display:none">Point1Z</span><span data-if="dotnet" style="display:none">point1Z</span><span data-if="python" style="display:none">point_1z</span></code></i></a>)
and <span title="4" style="vertical-align:-0.257356em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.986653em" height="1.00227em" viewBox="0 0 15.786453 16.036346">
<!-- Original BoundingBox: -7.893234 -8.018173 7.893219 8.018173 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_81">
      <path style="fill-rule: evenodd;" d="M592.000000 -18.000000C756.000000 -82.000000,799.000000 -230.000000,799.000000 -339.000000C799.000000 -555.000000,654.000000 -697.000000,432.000000 -697.000000C203.000000 -697.000000,64.000000 -549.000000,64.000000 -339.000000C64.000000 -135.000000,200.000000 11.000000,432.000000 11.000000C454.000000 11.000000,487.000000 10.000000,527.000000 2.000000C555.000000 115.000000,575.000000 194.000000,668.000000 194.000000C770.000000 194.000000,805.000000 76.000000,805.000000 8.000000C805.000000 -0.000000,805.000000 -18.000000,787.000000 -18.000000C772.000000 -18.000000,770.000000 -5.000000,769.000000 2.000000C763.000000 40.000000,701.000000 41.000000,684.000000 41.000000C661.000000 41.000000,631.000000 41.000000,592.000000 -18.000000M337.000000 -51.000000C214.000000 -110.000000,211.000000 -262.000000,211.000000 -340.000000C211.000000 -380.000000,211.000000 -475.000000,248.000000 -546.000000C300.000000 -642.000000,386.000000 -657.000000,431.000000 -657.000000C485.000000 -657.000000,563.000000 -637.000000,611.000000 -552.000000C649.000000 -485.000000,652.000000 -399.000000,652.000000 -340.000000C652.000000 -284.000000,652.000000 -135.000000,556.000000 -69.000000C534.000000 -102.000000,498.000000 -155.000000,431.000000 -155.000000C380.000000 -155.000000,334.000000 -121.000000,334.000000 -73.000000C334.000000 -67.000000,335.000000 -56.000000,337.000000 -51.000000M514.000000 -45.000000C489.000000 -34.000000,459.000000 -29.000000,432.000000 -29.000000C377.000000 -29.000000,370.000000 -61.000000,370.000000 -73.000000C370.000000 -100.000000,399.000000 -119.000000,432.000000 -119.000000C460.000000 -119.000000,494.000000 -108.000000,514.000000 -45.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.122757 11.918655)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_81"></use>
  </g>
</svg></span> the second point
(<a href="#Point2X"><i><code><span data-if="hdevelop" style="display:inline">Point2X</span><span data-if="c" style="display:none">Point2X</span><span data-if="cpp" style="display:none">Point2X</span><span data-if="com" style="display:none">Point2X</span><span data-if="dotnet" style="display:none">point2X</span><span data-if="python" style="display:none">point_2x</span></code></i></a>, <a href="#Point2Y"><i><code><span data-if="hdevelop" style="display:inline">Point2Y</span><span data-if="c" style="display:none">Point2Y</span><span data-if="cpp" style="display:none">Point2Y</span><span data-if="com" style="display:none">Point2Y</span><span data-if="dotnet" style="display:none">point2Y</span><span data-if="python" style="display:none">point_2y</span></code></i></a>, <a href="#Point2Z"><i><code><span data-if="hdevelop" style="display:inline">Point2Z</span><span data-if="c" style="display:none">Point2Z</span><span data-if="cpp" style="display:none">Point2Z</span><span data-if="com" style="display:none">Point2Z</span><span data-if="dotnet" style="display:none">point2Z</span><span data-if="python" style="display:none">point_2z</span></code></i></a>) on the line.
To compute the line direction <span title="5" style="vertical-align:-0.0917759em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.815072em" height="0.808552em" viewBox="0 0 13.041153 12.936829">
<!-- Original BoundingBox: -6.520584 -6.468414 6.520569 6.468414 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_76">
      <path style="fill-rule: evenodd;" d="M643.000000 -274.000000L596.000000 -274.000000C588.000000 -205.000000,571.000000 -47.000000,392.000000 -47.000000L289.000000 -47.000000L289.000000 -639.000000L424.000000 -639.000000L424.000000 -686.000000L222.000000 -686.000000L380.000000 -683.000000L271.000000 -683.000000L222.000000 -683.000000L178.000000 -683.000000L77.000000 -683.000000L39.000000 -686.000000L39.000000 -639.000000L147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L612.000000 -0.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.495407 11.468414)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_76"></use>
  </g>
</svg></span>, the
vector <span title="6" style="vertical-align:-0.257356em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="5.19448em" height="1.00227em" viewBox="0 0 83.111664 16.036346">
<!-- Original BoundingBox: -41.555832 -8.018173 41.555832 8.018173 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_61">
      <path style="fill-rule: evenodd;" d="M687.000000 -327.000000C702.000000 -327.000000,721.000000 -327.000000,721.000000 -347.000000C721.000000 -367.000000,702.000000 -367.000000,688.000000 -367.000000L89.000000 -367.000000C75.000000 -367.000000,56.000000 -367.000000,56.000000 -347.000000C56.000000 -327.000000,75.000000 -327.000000,90.000000 -327.000000M688.000000 -133.000000C702.000000 -133.000000,721.000000 -133.000000,721.000000 -153.000000C721.000000 -173.000000,702.000000 -173.000000,687.000000 -173.000000L90.000000 -173.000000C75.000000 -173.000000,56.000000 -173.000000,56.000000 -153.000000C56.000000 -133.000000,75.000000 -133.000000,89.000000 -133.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_0">
      <path style="fill-rule: evenodd;" d="M659.000000 -230.000000C676.000000 -230.000000,694.000000 -230.000000,694.000000 -250.000000C694.000000 -270.000000,676.000000 -270.000000,659.000000 -270.000000L118.000000 -270.000000C101.000000 -270.000000,83.000000 -270.000000,83.000000 -250.000000C83.000000 -230.000000,101.000000 -230.000000,118.000000 -230.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_68">
      <path style="fill-rule: evenodd;" d="M147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L470.000000 -0.000000C667.000000 -0.000000,817.000000 -123.000000,817.000000 -337.000000C817.000000 -557.000000,667.000000 -686.000000,469.000000 -686.000000L39.000000 -686.000000L39.000000 -639.000000M283.000000 -47.000000L283.000000 -639.000000L429.000000 -639.000000C495.000000 -639.000000,578.000000 -620.000000,627.000000 -550.000000C662.000000 -499.000000,670.000000 -431.000000,670.000000 -338.000000C670.000000 -229.000000,658.000000 -176.000000,626.000000 -131.000000C578.000000 -63.000000,490.000000 -47.000000,429.000000 -47.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_80">
      <path style="fill-rule: evenodd;" d="M289.000000 -302.000000L466.000000 -302.000000C605.000000 -302.000000,721.000000 -374.000000,721.000000 -491.000000C721.000000 -601.000000,622.000000 -686.000000,456.000000 -686.000000L39.000000 -686.000000L39.000000 -639.000000L147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L218.000000 -0.000000L77.000000 -3.000000L175.000000 -3.000000L218.000000 -3.000000L261.000000 -3.000000L359.000000 -3.000000L397.000000 -0.000000L397.000000 -47.000000L289.000000 -47.000000M417.000000 -343.000000L283.000000 -343.000000L283.000000 -639.000000L418.000000 -639.000000C568.000000 -639.000000,568.000000 -563.000000,568.000000 -491.000000C568.000000 -420.000000,568.000000 -343.000000,417.000000 -343.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_81">
      <path style="fill-rule: evenodd;" d="M592.000000 -18.000000C756.000000 -82.000000,799.000000 -230.000000,799.000000 -339.000000C799.000000 -555.000000,654.000000 -697.000000,432.000000 -697.000000C203.000000 -697.000000,64.000000 -549.000000,64.000000 -339.000000C64.000000 -135.000000,200.000000 11.000000,432.000000 11.000000C454.000000 11.000000,487.000000 10.000000,527.000000 2.000000C555.000000 115.000000,575.000000 194.000000,668.000000 194.000000C770.000000 194.000000,805.000000 76.000000,805.000000 8.000000C805.000000 -0.000000,805.000000 -18.000000,787.000000 -18.000000C772.000000 -18.000000,770.000000 -5.000000,769.000000 2.000000C763.000000 40.000000,701.000000 41.000000,684.000000 41.000000C661.000000 41.000000,631.000000 41.000000,592.000000 -18.000000M337.000000 -51.000000C214.000000 -110.000000,211.000000 -262.000000,211.000000 -340.000000C211.000000 -380.000000,211.000000 -475.000000,248.000000 -546.000000C300.000000 -642.000000,386.000000 -657.000000,431.000000 -657.000000C485.000000 -657.000000,563.000000 -637.000000,611.000000 -552.000000C649.000000 -485.000000,652.000000 -399.000000,652.000000 -340.000000C652.000000 -284.000000,652.000000 -135.000000,556.000000 -69.000000C534.000000 -102.000000,498.000000 -155.000000,431.000000 -155.000000C380.000000 -155.000000,334.000000 -121.000000,334.000000 -73.000000C334.000000 -67.000000,335.000000 -56.000000,337.000000 -51.000000M514.000000 -45.000000C489.000000 -34.000000,459.000000 -29.000000,432.000000 -29.000000C377.000000 -29.000000,370.000000 -61.000000,370.000000 -73.000000C370.000000 -100.000000,399.000000 -119.000000,432.000000 -119.000000C460.000000 -119.000000,494.000000 -108.000000,514.000000 -45.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.460159 11.918655)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_68"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,18.946167 11.918655)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,35.771988 11.918655)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_81"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,53.084702 11.918655)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_0"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,69.025070 11.918655)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_80"></use>
  </g>
</svg></span> and
its length <span title="7" style="vertical-align:-0.37221em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.00092em" height="1.12127em" viewBox="0 0 32.014664 17.940399">
<!-- Original BoundingBox: -16.007339 -8.970200 16.007324 8.970200 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_107">
      <path style="fill-rule: evenodd;" d="M172.000000 -716.000000C172.000000 -732.000000,172.000000 -750.000000,152.000000 -750.000000C132.000000 -750.000000,132.000000 -728.000000,132.000000 -713.000000L132.000000 213.000000C132.000000 229.000000,132.000000 250.000000,152.000000 250.000000C172.000000 250.000000,172.000000 232.000000,172.000000 216.000000M367.000000 -713.000000C367.000000 -729.000000,367.000000 -750.000000,347.000000 -750.000000C327.000000 -750.000000,327.000000 -732.000000,327.000000 -716.000000L327.000000 216.000000C327.000000 232.000000,327.000000 250.000000,347.000000 250.000000C367.000000 250.000000,367.000000 228.000000,367.000000 213.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_68">
      <path style="fill-rule: evenodd;" d="M147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L470.000000 -0.000000C667.000000 -0.000000,817.000000 -123.000000,817.000000 -337.000000C817.000000 -557.000000,667.000000 -686.000000,469.000000 -686.000000L39.000000 -686.000000L39.000000 -639.000000M283.000000 -47.000000L283.000000 -639.000000L429.000000 -639.000000C495.000000 -639.000000,578.000000 -620.000000,627.000000 -550.000000C662.000000 -499.000000,670.000000 -431.000000,670.000000 -338.000000C670.000000 -229.000000,658.000000 -176.000000,626.000000 -131.000000C578.000000 -63.000000,490.000000 -47.000000,429.000000 -47.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,1.008652 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_107"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.978775 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_68"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,23.037064 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_107"></use>
  </g>
</svg></span> are computed.
If <span title="8" style="vertical-align:-0.37221em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.82739em" height="1.12127em" viewBox="0 0 61.238312 17.940399">
<!-- Original BoundingBox: -30.619156 -8.970200 30.619156 8.970200 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_61">
      <path style="fill-rule: evenodd;" d="M687.000000 -327.000000C702.000000 -327.000000,721.000000 -327.000000,721.000000 -347.000000C721.000000 -367.000000,702.000000 -367.000000,688.000000 -367.000000L89.000000 -367.000000C75.000000 -367.000000,56.000000 -367.000000,56.000000 -347.000000C56.000000 -327.000000,75.000000 -327.000000,90.000000 -327.000000M688.000000 -133.000000C702.000000 -133.000000,721.000000 -133.000000,721.000000 -153.000000C721.000000 -173.000000,702.000000 -173.000000,687.000000 -173.000000L90.000000 -173.000000C75.000000 -173.000000,56.000000 -173.000000,56.000000 -153.000000C56.000000 -133.000000,75.000000 -133.000000,89.000000 -133.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_107">
      <path style="fill-rule: evenodd;" d="M172.000000 -716.000000C172.000000 -732.000000,172.000000 -750.000000,152.000000 -750.000000C132.000000 -750.000000,132.000000 -728.000000,132.000000 -713.000000L132.000000 213.000000C132.000000 229.000000,132.000000 250.000000,152.000000 250.000000C172.000000 250.000000,172.000000 232.000000,172.000000 216.000000M367.000000 -713.000000C367.000000 -729.000000,367.000000 -750.000000,347.000000 -750.000000C327.000000 -750.000000,327.000000 -732.000000,327.000000 -716.000000L327.000000 216.000000C327.000000 232.000000,327.000000 250.000000,347.000000 250.000000C367.000000 250.000000,367.000000 228.000000,367.000000 213.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_68">
      <path style="fill-rule: evenodd;" d="M147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L470.000000 -0.000000C667.000000 -0.000000,817.000000 -123.000000,817.000000 -337.000000C817.000000 -557.000000,667.000000 -686.000000,469.000000 -686.000000L39.000000 -686.000000L39.000000 -639.000000M283.000000 -47.000000L283.000000 -639.000000L429.000000 -639.000000C495.000000 -639.000000,578.000000 -620.000000,627.000000 -550.000000C662.000000 -499.000000,670.000000 -431.000000,670.000000 -338.000000C670.000000 -229.000000,658.000000 -176.000000,626.000000 -131.000000C578.000000 -63.000000,490.000000 -47.000000,429.000000 -47.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.396835 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_107"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.366959 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_68"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,22.425247 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_107"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,34.823212 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,51.649033 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
</svg></span>, the points do not define a line
and an error is returned.
The line direction is given by
<span title="9" style="vertical-align:-0.37221em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="5.39513em" height="1.12127em" viewBox="0 0 86.322067 17.940399">
<!-- Original BoundingBox: -43.161041 -8.970200 43.161026 8.970200 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_61">
      <path style="fill-rule: evenodd;" d="M687.000000 -327.000000C702.000000 -327.000000,721.000000 -327.000000,721.000000 -347.000000C721.000000 -367.000000,702.000000 -367.000000,688.000000 -367.000000L89.000000 -367.000000C75.000000 -367.000000,56.000000 -367.000000,56.000000 -347.000000C56.000000 -327.000000,75.000000 -327.000000,90.000000 -327.000000M688.000000 -133.000000C702.000000 -133.000000,721.000000 -133.000000,721.000000 -153.000000C721.000000 -173.000000,702.000000 -173.000000,687.000000 -173.000000L90.000000 -173.000000C75.000000 -173.000000,56.000000 -173.000000,56.000000 -153.000000C56.000000 -133.000000,75.000000 -133.000000,89.000000 -133.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_107">
      <path style="fill-rule: evenodd;" d="M172.000000 -716.000000C172.000000 -732.000000,172.000000 -750.000000,152.000000 -750.000000C132.000000 -750.000000,132.000000 -728.000000,132.000000 -713.000000L132.000000 213.000000C132.000000 229.000000,132.000000 250.000000,152.000000 250.000000C172.000000 250.000000,172.000000 232.000000,172.000000 216.000000M367.000000 -713.000000C367.000000 -729.000000,367.000000 -750.000000,347.000000 -750.000000C327.000000 -750.000000,327.000000 -732.000000,327.000000 -716.000000L327.000000 216.000000C327.000000 232.000000,327.000000 250.000000,347.000000 250.000000C367.000000 250.000000,367.000000 228.000000,367.000000 213.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_61">
      <path style="fill-rule: evenodd;" d="M439.000000 -712.000000C444.000000 -725.000000,444.000000 -729.000000,444.000000 -730.000000C444.000000 -741.000000,435.000000 -750.000000,424.000000 -750.000000C417.000000 -750.000000,410.000000 -747.000000,407.000000 -741.000000L60.000000 212.000000C55.000000 225.000000,55.000000 229.000000,55.000000 230.000000C55.000000 241.000000,64.000000 250.000000,75.000000 250.000000C88.000000 250.000000,91.000000 243.000000,97.000000 226.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_68">
      <path style="fill-rule: evenodd;" d="M147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L470.000000 -0.000000C667.000000 -0.000000,817.000000 -123.000000,817.000000 -337.000000C817.000000 -557.000000,667.000000 -686.000000,469.000000 -686.000000L39.000000 -686.000000L39.000000 -639.000000M283.000000 -47.000000L283.000000 -639.000000L429.000000 -639.000000C495.000000 -639.000000,578.000000 -620.000000,627.000000 -550.000000C662.000000 -499.000000,670.000000 -431.000000,670.000000 -338.000000C670.000000 -229.000000,658.000000 -176.000000,626.000000 -131.000000C578.000000 -63.000000,490.000000 -47.000000,429.000000 -47.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_76">
      <path style="fill-rule: evenodd;" d="M643.000000 -274.000000L596.000000 -274.000000C588.000000 -205.000000,571.000000 -47.000000,392.000000 -47.000000L289.000000 -47.000000L289.000000 -639.000000L424.000000 -639.000000L424.000000 -686.000000L222.000000 -686.000000L380.000000 -683.000000L271.000000 -683.000000L222.000000 -683.000000L178.000000 -683.000000L77.000000 -683.000000L39.000000 -686.000000L39.000000 -639.000000L147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L612.000000 -0.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.854950 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_76"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,16.307983 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,33.133804 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_68"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,47.192093 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,55.162216 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_107"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,63.132477 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_68"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,77.190765 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_107"></use>
  </g>
</svg></span>.
The line moment is given by the cross product
<span title="10" style="vertical-align:-0.153807em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="5.23184em" height="0.891572em" viewBox="0 0 83.709442 14.265152">
<!-- Original BoundingBox: -41.854721 -7.132568 41.854721 7.132584 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_61">
      <path style="fill-rule: evenodd;" d="M687.000000 -327.000000C702.000000 -327.000000,721.000000 -327.000000,721.000000 -347.000000C721.000000 -367.000000,702.000000 -367.000000,688.000000 -367.000000L89.000000 -367.000000C75.000000 -367.000000,56.000000 -367.000000,56.000000 -347.000000C56.000000 -327.000000,75.000000 -327.000000,90.000000 -327.000000M688.000000 -133.000000C702.000000 -133.000000,721.000000 -133.000000,721.000000 -153.000000C721.000000 -173.000000,702.000000 -173.000000,687.000000 -173.000000L90.000000 -173.000000C75.000000 -173.000000,56.000000 -173.000000,56.000000 -153.000000C56.000000 -133.000000,75.000000 -133.000000,89.000000 -133.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_2">
      <path style="fill-rule: evenodd;" d="M389.000000 -278.000000L189.000000 -477.000000C177.000000 -489.000000,175.000000 -491.000000,167.000000 -491.000000C157.000000 -491.000000,147.000000 -482.000000,147.000000 -471.000000C147.000000 -464.000000,149.000000 -462.000000,160.000000 -451.000000L360.000000 -250.000000L160.000000 -49.000000C149.000000 -38.000000,147.000000 -36.000000,147.000000 -29.000000C147.000000 -18.000000,157.000000 -9.000000,167.000000 -9.000000C175.000000 -9.000000,177.000000 -11.000000,189.000000 -23.000000L388.000000 -222.000000L595.000000 -15.000000C597.000000 -14.000000,604.000000 -9.000000,610.000000 -9.000000C622.000000 -9.000000,630.000000 -18.000000,630.000000 -29.000000C630.000000 -31.000000,630.000000 -35.000000,627.000000 -40.000000C626.000000 -42.000000,467.000000 -199.000000,417.000000 -250.000000L600.000000 -433.000000C605.000000 -439.000000,620.000000 -452.000000,625.000000 -458.000000C626.000000 -460.000000,630.000000 -464.000000,630.000000 -471.000000C630.000000 -482.000000,622.000000 -491.000000,610.000000 -491.000000C602.000000 -491.000000,598.000000 -487.000000,587.000000 -476.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_76">
      <path style="fill-rule: evenodd;" d="M643.000000 -274.000000L596.000000 -274.000000C588.000000 -205.000000,571.000000 -47.000000,392.000000 -47.000000L289.000000 -47.000000L289.000000 -639.000000L424.000000 -639.000000L424.000000 -686.000000L222.000000 -686.000000L380.000000 -683.000000L271.000000 -683.000000L222.000000 -683.000000L178.000000 -683.000000L77.000000 -683.000000L39.000000 -686.000000L39.000000 -639.000000L147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L612.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_77">
      <path style="fill-rule: evenodd;" d="M546.000000 -132.000000L306.000000 -661.000000C295.000000 -686.000000,284.000000 -686.000000,262.000000 -686.000000L40.000000 -686.000000L40.000000 -639.000000L148.000000 -639.000000L148.000000 -76.000000C148.000000 -54.000000,147.000000 -53.000000,119.000000 -50.000000C95.000000 -47.000000,93.000000 -47.000000,65.000000 -47.000000L40.000000 -47.000000L40.000000 -0.000000L174.000000 -0.000000L78.000000 -3.000000L135.000000 -3.000000L174.000000 -3.000000L216.000000 -3.000000L268.000000 -3.000000L309.000000 -0.000000L309.000000 -47.000000L284.000000 -47.000000C266.000000 -47.000000,249.000000 -48.000000,231.000000 -50.000000C202.000000 -53.000000,201.000000 -54.000000,201.000000 -76.000000L201.000000 -626.000000L202.000000 -626.000000L474.000000 -25.000000C483.000000 -5.000000,495.000000 -0.000000,506.000000 -0.000000C526.000000 -0.000000,534.000000 -15.000000,538.000000 -24.000000L817.000000 -639.000000L818.000000 -639.000000L818.000000 -47.000000L710.000000 -47.000000L710.000000 -0.000000L880.000000 -0.000000L746.000000 -3.000000L839.000000 -3.000000L880.000000 -3.000000L921.000000 -3.000000L1015.000000 -3.000000L1051.000000 -0.000000L1051.000000 -47.000000L943.000000 -47.000000L943.000000 -639.000000L1051.000000 -639.000000L1051.000000 -686.000000L830.000000 -686.000000C808.000000 -686.000000,797.000000 -686.000000,786.000000 -661.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_80">
      <path style="fill-rule: evenodd;" d="M289.000000 -302.000000L466.000000 -302.000000C605.000000 -302.000000,721.000000 -374.000000,721.000000 -491.000000C721.000000 -601.000000,622.000000 -686.000000,456.000000 -686.000000L39.000000 -686.000000L39.000000 -639.000000L147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L218.000000 -0.000000L77.000000 -3.000000L175.000000 -3.000000L218.000000 -3.000000L261.000000 -3.000000L359.000000 -3.000000L397.000000 -0.000000L397.000000 -47.000000L289.000000 -47.000000M417.000000 -343.000000L283.000000 -343.000000L283.000000 -639.000000L418.000000 -639.000000C568.000000 -639.000000,568.000000 -563.000000,568.000000 -491.000000C568.000000 -420.000000,568.000000 -343.000000,417.000000 -343.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.161270 11.804245)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_77"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,21.990326 11.804245)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,38.816147 11.804245)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_80"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,54.889160 11.804245)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_2"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,70.829391 11.804245)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_76"></use>
  </g>
</svg></span>.
</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Point1X" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Point1X</span><span data-if="c" style="display:none">Point1X</span><span data-if="cpp" style="display:none">Point1X</span><span data-if="com" style="display:none">Point1X</span><span data-if="dotnet" style="display:none">point1X</span><span data-if="python" style="display:none">point_1x</span></code></b> (input_control)  </span><span>point3d.x(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">X coordinates of the first point on the line.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Point1Y" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Point1Y</span><span data-if="c" style="display:none">Point1Y</span><span data-if="cpp" style="display:none">Point1Y</span><span data-if="com" style="display:none">Point1Y</span><span data-if="dotnet" style="display:none">point1Y</span><span data-if="python" style="display:none">point_1y</span></code></b> (input_control)  </span><span>point3d.y(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Y coordinates of the first point on the line.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Point1Z" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Point1Z</span><span data-if="c" style="display:none">Point1Z</span><span data-if="cpp" style="display:none">Point1Z</span><span data-if="com" style="display:none">Point1Z</span><span data-if="dotnet" style="display:none">point1Z</span><span data-if="python" style="display:none">point_1z</span></code></b> (input_control)  </span><span>point3d.z(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Z coordinates of the first point on the line.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Point2X" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Point2X</span><span data-if="c" style="display:none">Point2X</span><span data-if="cpp" style="display:none">Point2X</span><span data-if="com" style="display:none">Point2X</span><span data-if="dotnet" style="display:none">point2X</span><span data-if="python" style="display:none">point_2x</span></code></b> (input_control)  </span><span>point3d.x(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">X coordinates of the second point on the line.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Point2Y" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Point2Y</span><span data-if="c" style="display:none">Point2Y</span><span data-if="cpp" style="display:none">Point2Y</span><span data-if="com" style="display:none">Point2Y</span><span data-if="dotnet" style="display:none">point2Y</span><span data-if="python" style="display:none">point_2y</span></code></b> (input_control)  </span><span>point3d.y(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Y coordinates of the second point on the line.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Point2Z" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Point2Z</span><span data-if="c" style="display:none">Point2Z</span><span data-if="cpp" style="display:none">Point2Z</span><span data-if="com" style="display:none">Point2Z</span><span data-if="dotnet" style="display:none">point2Z</span><span data-if="python" style="display:none">point_2z</span></code></b> (input_control)  </span><span>point3d.z(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Z coordinates of the second point on the line.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="LineDirectionX" class="parname"><b><code><span data-if="hdevelop" style="display:inline">LineDirectionX</span><span data-if="c" style="display:none">LineDirectionX</span><span data-if="cpp" style="display:none">LineDirectionX</span><span data-if="com" style="display:none">LineDirectionX</span><span data-if="dotnet" style="display:none">lineDirectionX</span><span data-if="python" style="display:none">line_direction_x</span></code></b> (output_control)  </span><span>point3d.x(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">X component of the direction vector of the line.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="LineDirectionY" class="parname"><b><code><span data-if="hdevelop" style="display:inline">LineDirectionY</span><span data-if="c" style="display:none">LineDirectionY</span><span data-if="cpp" style="display:none">LineDirectionY</span><span data-if="com" style="display:none">LineDirectionY</span><span data-if="dotnet" style="display:none">lineDirectionY</span><span data-if="python" style="display:none">line_direction_y</span></code></b> (output_control)  </span><span>point3d.y(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Y component of the direction vector of the line.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="LineDirectionZ" class="parname"><b><code><span data-if="hdevelop" style="display:inline">LineDirectionZ</span><span data-if="c" style="display:none">LineDirectionZ</span><span data-if="cpp" style="display:none">LineDirectionZ</span><span data-if="com" style="display:none">LineDirectionZ</span><span data-if="dotnet" style="display:none">lineDirectionZ</span><span data-if="python" style="display:none">line_direction_z</span></code></b> (output_control)  </span><span>point3d.z(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Z component of the direction vector of the line.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="LineMomentX" class="parname"><b><code><span data-if="hdevelop" style="display:inline">LineMomentX</span><span data-if="c" style="display:none">LineMomentX</span><span data-if="cpp" style="display:none">LineMomentX</span><span data-if="com" style="display:none">LineMomentX</span><span data-if="dotnet" style="display:none">lineMomentX</span><span data-if="python" style="display:none">line_moment_x</span></code></b> (output_control)  </span><span>point3d.x(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">X component of the moment vector of the line.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="LineMomentY" class="parname"><b><code><span data-if="hdevelop" style="display:inline">LineMomentY</span><span data-if="c" style="display:none">LineMomentY</span><span data-if="cpp" style="display:none">LineMomentY</span><span data-if="com" style="display:none">LineMomentY</span><span data-if="dotnet" style="display:none">lineMomentY</span><span data-if="python" style="display:none">line_moment_y</span></code></b> (output_control)  </span><span>point3d.y(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Y component of the moment vector of the line.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="LineMomentZ" class="parname"><b><code><span data-if="hdevelop" style="display:inline">LineMomentZ</span><span data-if="c" style="display:none">LineMomentZ</span><span data-if="cpp" style="display:none">LineMomentZ</span><span data-if="com" style="display:none">LineMomentZ</span><span data-if="dotnet" style="display:none">lineMomentZ</span><span data-if="python" style="display:none">line_moment_z</span></code></b> (output_control)  </span><span>point3d.z(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Z component of the moment vector of the line.</p>
</div>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="get_line_of_sight.html"><span data-if="hdevelop" style="display:inline">get_line_of_sight</span><span data-if="c" style="display:none">get_line_of_sight</span><span data-if="cpp" style="display:none">GetLineOfSight</span><span data-if="com" style="display:none">GetLineOfSight</span><span data-if="dotnet" style="display:none">GetLineOfSight</span><span data-if="python" style="display:none">get_line_of_sight</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="distance_point_pluecker_line.html"><span data-if="hdevelop" style="display:inline">distance_point_pluecker_line</span><span data-if="c" style="display:none">distance_point_pluecker_line</span><span data-if="cpp" style="display:none">DistancePointPlueckerLine</span><span data-if="com" style="display:none">DistancePointPlueckerLine</span><span data-if="dotnet" style="display:none">DistancePointPlueckerLine</span><span data-if="python" style="display:none">distance_point_pluecker_line</span></a></code>, 
<code><a href="point_pluecker_line_to_hom_mat3d.html"><span data-if="hdevelop" style="display:inline">point_pluecker_line_to_hom_mat3d</span><span data-if="c" style="display:none">point_pluecker_line_to_hom_mat3d</span><span data-if="cpp" style="display:none">PointPlueckerLineToHomMat3d</span><span data-if="com" style="display:none">PointPlueckerLineToHomMat3d</span><span data-if="dotnet" style="display:none">PointPlueckerLineToHomMat3d</span><span data-if="python" style="display:none">point_pluecker_line_to_hom_mat3d</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="point_direction_to_pluecker_line.html"><span data-if="hdevelop" style="display:inline">point_direction_to_pluecker_line</span><span data-if="c" style="display:none">point_direction_to_pluecker_line</span><span data-if="cpp" style="display:none">PointDirectionToPlueckerLine</span><span data-if="com" style="display:none">PointDirectionToPlueckerLine</span><span data-if="dotnet" style="display:none">PointDirectionToPlueckerLine</span><span data-if="python" style="display:none">point_direction_to_pluecker_line</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="pluecker_line_to_points.html"><span data-if="hdevelop" style="display:inline">pluecker_line_to_points</span><span data-if="c" style="display:none">pluecker_line_to_points</span><span data-if="cpp" style="display:none">PlueckerLineToPoints</span><span data-if="com" style="display:none">PlueckerLineToPoints</span><span data-if="dotnet" style="display:none">PlueckerLineToPoints</span><span data-if="python" style="display:none">pluecker_line_to_points</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
